package com.cwl.es.service;

import com.cwl.es.domain.NBAPlayer;

import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * @program: cwl_es
 * @description: NBA服务
 * @author: ChenWenLong
 * @create: 2019-11-05 17:50
 **/
public interface NBAPlayerService {

    /**
     * 功能描述:
     * 〈新增一个NBA明星〉
     *
     * @params : [player, id]
     * @return : boolean
     * @author : cwl
     * @date : 2019/11/5 17:51
     */
    boolean addPlayer(NBAPlayer player, String id) throws IOException;

    /**
     * 功能描述:
     * 〈根据ID查询NBA明星〉
     *
     * @params : [id]
     * @return : java.util.Map<java.lang.String,java.lang.Object>
     * @author : cwl
     * @date : 2019/11/5 17:51
     */
    Map<String,Object> getPlayer(String id) throws IOException;

    /**
     * 功能描述:
     * 〈更新NBA明星〉
     *
     * @params : [player, id]
     * @return : boolean
     * @author : cwl
     * @date : 2019/11/5 17:52
     */
    boolean updatePlayer(NBAPlayer player,String id) throws IOException;

    /**
     * 功能描述:
     * 〈删除一个NBA球星〉
     *
     * @params : [id]
     * @return : boolean
     * @author : cwl
     * @date : 2019/11/5 17:53
     */
    boolean deletePlayer(String id) throws IOException;

    /**
     * 功能描述:
     * 〈删除所有的NBA球星〉
     *
     * @params : []
     * @return : boolean
     * @author : cwl
     * @date : 2019/11/5 17:53
     */
    boolean deleteAllPlayer() throws IOException;

    /**
     * 功能描述:
     * 〈导入所有的NBA球星〉
     *
     * @params : []
     * @return : boolean
     * @author : cwl
     * @date : 2019/11/5 17:53
     */
    boolean importAll() throws IOException;

    /**
     * 功能描述:
     * 〈全匹配搜索-NBA球星〉
     *
     * @params : [key, value]
     * @return : java.util.List<com.cwl.es.domain.NBAPlayer>
     * @author : cwl
     * @date : 2019/11/5 17:53
     */
    List<NBAPlayer> searchMatch(String key, String value) throws IOException;

    /**
     * 功能描述:
     * 〈关键字搜索-NBA球星〉
     *
     * @params : [key, value]
     * @return : java.util.List<com.cwl.es.domain.NBAPlayer>
     * @author : cwl
     * @date : 2019/11/5 17:54
     */
    List<NBAPlayer> searchTerm(String key,String value) throws IOException;

    /**
     * 功能描述:
     * 〈前缀匹配搜索-NBA球星〉
     *
     * @params : [key, value]
     * @return : java.util.List<com.cwl.es.domain.NBAPlayer>
     * @author : cwl
     * @date : 2019/11/5 17:54
     */
    List<NBAPlayer> searchMatchPrefix(String key,String value) throws IOException;
}
